﻿using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using Uricao.Contratos.Reportes_Graficos___Housekeeping___Limpieza;

namespace Uricao.Presentadores.Reportes_Graficos___Housekeeping___Limpieza
{
    public class PresentadorDatosItinerario
    {
        private IContratoDatosConsultarItineratio _vista;
        private const string _mensajeCamposVacios = "Disculpe, no debe dejar campos obligatorios en blanco (*)";
        private const string _mensajeNumHabitacion = "El número de la habitación es incorrecto";
        private const string _mensajeCaracterEspecial = "El número de la habitación debe ser un caracter numérico";

        public PresentadorDatosItinerario(IContratoDatosConsultarItineratio vista)
        {
            _vista = vista;
        }

        public void validarTodosCampos()
        {
            if (!TieneCamposVacios())
            {
                _vista.LMensajeError.Visible = false;
                if (ValidaHabitacion() && !validaCaracteres())
                    _vista.LMensajeError.Visible = false;
            }
        }

        public bool TieneCamposVacios()
        {
            bool vacio = false;
            if (ValidarCamposVacios(_vista.TBNumHab.Text))
            {
                _vista.LMensajeError.Visible = true;
                _vista.LMensajeError.Text = _mensajeCamposVacios;
                vacio = true;
            }
            else
                vacio = false;
            return vacio;
        }

        public bool ValidarCamposVacios(string campoNumHab)
        {
            bool vacio = false;
            _vista.LvalidaHab.Visible = false;
            if (campoNumHab.Equals("") && _vista.RBNumHab.Checked == true)
            {
                vacio = true;
                if (campoNumHab.Equals(""))
                    _vista.LvalidaHab.Visible = true;
            }
            else
                vacio = false;

            return vacio;
        }

        public bool ValidarTexBox(string tbNumHabitacion)
        {
            bool vacio = true;
            if (tbNumHabitacion.Equals("") && _vista.RBNumHab.Checked == true)
            {
                vacio = false;
            }

            else if (((tbNumHabitacion.Length < 3) || tbNumHabitacion.Equals("000")) && _vista.RBNumHab.Checked == true)
            {
                vacio = false;
            }
            return vacio;
        }

        public bool ValidaHabitacion()
        {
            bool vacio = false;
            if (!ValidarTexBox(_vista.TBNumHab.Text))
            {
                vacio = false;
                _vista.LMensajeError.Visible = true;
                _vista.LMensajeError.Text = _mensajeNumHabitacion;
            }
            else
                vacio = true;

            return vacio;
        }

        public bool validarIntHabitacion(string habitacion)
        {
            int numero;
            bool cadena = int.TryParse(habitacion, out numero);
            if (cadena == true)
                return true;
            else
                return false;
        }

        public bool validaCaracteres()
        {
            bool tiene = true;
            if (validarIntHabitacion(_vista.TBNumHab.Text))
            {
                tiene = false;
            }
            else 
            {
                if (_vista.RBNumHab.Checked == true)
                {
                    tiene = true;
                    _vista.LMensajeError.Visible = true;
                    _vista.LMensajeError.Text = _mensajeCaracterEspecial;
                }
            }
            return tiene;
        }



        public void RadioButtonPersonalChanged()
        {
            _vista.TBNumHab.Enabled = false;
            _vista.DDListaPers.Enabled = true;
            _vista.RBNumHab.Checked = false;
            _vista.LMensajeError.Visible = false;
            _vista.GVEmpleHora.Visible = false;
            _vista.LvalidaHab.Visible = false;
        }

        public void RadioButtonNumHabChanged()
        {
            _vista.DDListaPers.Enabled = false;
            _vista.TBNumHab.Enabled = true;
            _vista.RBPersona.Checked = false;
            _vista.LMensajeError.Visible = false;
            _vista.GVEmpleHora.Visible = false;
        }
    }
}
